package com.sc.nft.service;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sc.nft.entity.SalvageEventsInfo;
import com.sc.nft.entity.vo.AdminSalvageEventsPageVO;
import com.sc.nft.entity.vo.salvageEvents.AdminAddAalvageEventsDetailsVO;
import com.sc.nft.entity.vo.salvageEvents.AdminPageSalvageEventsRecordsVO;
import com.sc.nft.entity.vo.salvageEvents.GetAdminDetailsByIdVO;
import com.sc.nft.entity.vo.salvageEvents.SalvageRewardsVO;
import com.sc.nft.enums.NFTProductShowSalvagePrefectureEnum;

import java.util.List;

/**
 * 分解活动藏品奖励表服务接口
 *
 * @author Sun
 * @description 由 Mybatisplus Code Generator 创建
 * @since 2023-08-10 13:40:55
 */
public interface AdminSalvageEventsDetailsService {

    /**
     * 后台分页获取分解活动
     *
     * @param eventsName
     * @param pageNo
     * @param pageSize
     * @return
     */
    Page<AdminSalvageEventsPageVO> getAdminSalvageEventsPage(String eventsName, Integer pageNo, Integer pageSize);

    /**
     * 后台添加分解活动
     *
     * @param salvageEventsInfo
     * @param collectionList
     */
    void adminAddSalvageEvents(SalvageEventsInfo salvageEventsInfo, List<AdminAddAalvageEventsDetailsVO> collectionList);


    /**
     * 后台获取分解活动详情
     *
     * @param id
     */
    GetAdminDetailsByIdVO getAdminDetailsById(Long id);

    /**
     * 后台修改分解活动上下架
     *
     * @param id
     */
    void updateIsListing(Long id, Boolean isListing);

    /**
     * 后台修改分解活动排序
     *
     * @param id
     * @param sort
     */
    void updateSort(Long id, Integer sort);

    /**
     * 分页获取分解记录
     *
     * @param userTel
     * @param pageNo
     * @param pageSize
     * @return
     */
    Page<AdminPageSalvageEventsRecordsVO> gtPageSalvageEventsRecords(String userTel, String eventsName, Integer pageNo, Integer pageSize);

    /**
     * 删除分解活动
     *
     * @param id
     */
    void delById(Long id);

    /**
     * 修改分解活动基础信息
     *
     * @param id
     * @param coverImage
     * @param regularImage
     * @param sumCount
     * @param userCount
     */
    void updateInfoById(Long id, String coverImage, String regularImage, Integer sumCount, Integer userCount, NFTProductShowSalvagePrefectureEnum showSalvagePrefecture, Boolean consumeConsensus);

    /**
     * 获取分解活动奖励
     *
     * @param id
     * @param collectionId
     * @return
     */
    SalvageRewardsVO getRewards(Long id, Long collectionId);

}
